﻿#pragma once

#include "ui/window.h"
#include "vg/base.h"
#include "shared.h"

namespace anip
{
	class Font;

	namespace editor
	{
		class DrawingToolbox;
		class DrawingToolbar;
		class Inspector;
		class Palette;
		class DrawingArea;
		class WindowManager;

		namespace drawing
		{
			class Tool;
		}

		class EditorWindow : public ui::Window
		{
		protected:
			using Window::setText;
			using Window::addChild;
			using Window::controlButtons;
			using Window::addCloseButton;
			using Window::flowChildren;
			//...

			EditorWindow(Container* parent, invec2 size, const wstring& title = L"");
		};

		class Settings
		{
		public:
			static Font 
				defaultFont, 
				headerFont;

			static PreloadedTexture 
				closeButtonTexture,
				folderIconTexture;

			static void initDefault();

			//static void init(const wstring& config);
		};

		class Globals
		{
		public:
			static const std::vector<drawing::Tool*> drawingTools;
			static DrawingArea* currentDrawingArea;

			// singleton windows go here
			static DrawingToolbox* drawingToolbox;
			static DrawingToolbar* drawingToolbar;
			static Inspector* inspector;
			static Palette* palette;

			static void init();
			static void finalize();
		};
	}
}